package cn.windfly.don.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

import cn.windfly.don.DonConfig;

@WebFilter(value = "*.html")
public class HtmlPathFilter implements Filter {

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		if (DonConfig.getBoolean("html.prefix", false)) {
			HttpServletRequest req = (HttpServletRequest) arg0;
			if (req.getServletPath().startsWith("/a/")) {
				req.getRequestDispatcher(
						req.getServletPath().toString().replaceFirst("/a/", "/").replace(".json", ".dhtml"))
						.forward(arg0, arg1);
			}
			if (req.getServletPath().startsWith("/j/")) {
				req.getRequestDispatcher("/WEB-INF/"
						+ req.getServletPath().toString().replaceFirst("/j/", "/jsp/").replace(".html", ".jsp"))
						.forward(arg0, arg1);
			}
		}

		arg2.doFilter(arg0, arg1);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {

	}

}
